// axios封装
import axios from 'axios';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
// 此处基础地址后续可只写接口地址如："/login",不需要加前面的域名及端口号
// axios.defaults.baseURL = "https://www.liulongbin.top:8888/api/private/v1";
axios.defaults.baseURL = "https://yapi.baidu.com/mock/536/zhuzhu";
// axios.defaults.baseURL = "http://139.196.200.142:80/cityshop-api-shop";
//请求拦截器
axios.interceptors.request.use(config => {
  // 在发送请求之前做些什么
  NProgress.start()
  //添加token
  // TODO后期应该外从mobx中获取token
  config.headers.ContentType = 'application/json'
  // config.headers.Authorization = window.sessionStorage.getItem('token');
  return config;
}, error => {
  // 对请求错误做些什么
    NProgress.done()
  return Promise.reject(error);
});
// http response 响应拦截器
axios.interceptors.response.use(response => {
  NProgress.done()
  return response;
}, error => {
    NProgress.done()
  // 返回接口返回的错误信息
  return Promise.reject(error.response.data);

});
/**
  * get方法，对应get请求
  * @param {String} url [请求的url地址]
  * @param {Object} params [请求时携带的参数]
  */
export function get(url, params) {
  return new Promise((resolve, reject) => {
    axios.get(url, {
      params: params
    }).then(res => {
      resolve(res);
    }).catch(err => {
      reject(err)
    })
  });
}
/**
  * post方法，对应post请求
  * @param {String} url [请求的url地址]
  * @param {Object} params [请求时携带的参数]
  */
export function post(url, params) {
  console.log(params);
  return new Promise((resolve, reject) => {
    axios.post(url, params)
      .then(res => {
        resolve(res);
      })
      .catch(err => {
        reject(err)
      })
  });
}
